package com.wlr.study.leetcode.codethink.link;

/**
 * 链表操作类
 *
 * @author HustleLr
 * @date 2022/01/30
 */
public class LinkedOperator {
    /**
     * 删除单链表中指定的元素
     *
     * @param val  指定的元素
     * @param node 单链表
     * @return 链表
     */
    public LinkedNode delLinkedElement(int val, LinkedNode node) {
        //如果是头结点的情况下删除
        while (node != null && node.val == val) {
            node = node.next;
        }
        LinkedNode head = node;
        //如果不是头结点的情况下删除节点
        while (head != null && head.next != null) {
            //判断该节点的下一个节点是否相等
            if (head.next.val == val) {
                // 如果相等的话将该节点与下下个节点连接
                head.next = head.next.next;
            } else {
                head = head.next;
            }
        }
        return node;
    }
}
